﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xyz.Framework.Shared.DataContracts.DTO;
using Xyz.Framework.Server.Caching;

namespace Xyz.Framework.Server.Security
{
    public class AuthenticatedUser
    {
        public int UserId { get; set; }
        public string UserName { get; set; }

        private static AuthenticatedUser _current;
        private AuthenticatedUser(AuthenticatedUserDTO user)
        {
            this.UserId = user.User.Id;
            this.UserName = user.User.UserName;

        }

        public static AuthenticatedUser Current
        {
            get
            {
                if (_current == null)
                    throw new Exception("Kullanıcı oluşturulmamış");
                return _current;
            }
        }
        public static AuthenticatedUser CreateCurrentUser(AuthenticatedUserDTO user)
        {
            //Bu işlemin her kullanıcı için çalışabilir hale getirilmesi gerekir
            _current = null;
            _current = new AuthenticatedUser(user);
            return _current;
        }


    }
}
